package airport.pk.validate;

import java.io.FileInputStream;
import java.io.IOException;
//test
public class ValidateLibrary {
	/**
	  * byte array is transformed as Hex String
	  * @param src
	  * @return
	  */
	public static String bytesToHexString(byte[] src) {
		StringBuilder stringBuilder = new StringBuilder();
		if (src == null || src.length <= 0) {
			return null;
		}
		for (int i = 0; i < src.length; i++) {
			 int v = src[i] & 0xFF;
			 String hv = Integer.toHexString(v);  
			 if (hv.length() < 2) {     
	                stringBuilder.append(0);     
	         }     
	         stringBuilder.append(hv); 
		}
		return stringBuilder.toString();
	}
	
	/**
	  * get the real file type according to the io Stream
	  * @param is
	  * @return
	  */
	public static String getTypeByStream(FileInputStream is){
	     byte[] b = new byte[4];  
	     try {
	    	 is.read(b, 0, b.length);
	    	 } 
	     catch (IOException e) {
	    	 e.printStackTrace();
	    	 }
	     String type = bytesToHexString(b).toUpperCase();
	     if(type.contains("FFD8FF")){
	    	 return "jpg";
	    	 }
	     else 
	    	 if(type.contains("89504E47")){
	    		 return "png";
	    		 }
	    	 else 
	    		 if(type.contains("47494638")){
	    			 return "gif";
	    			 }else 
	    				 if(type.contains("49492A00")){
	    					 return "tif";
	    					 } else 
	    						 if(type.contains("424D")){
	    							 return "bmp";
	    							 }
	        return type;
	    }

}
